package reflect.list;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

/**
 * @author yangwenqi
 * @decs TODO
 * @date 2025/5/28
 * 反射: “暴力破解”
 * 1.破坏封装性
 * 2.破坏泛型
 *
 * 需求：集合泛型为Integer，通过反射，将"abc"字符串添加至集合中
已知：
List<Integer> list = new ArrayList<>();
list.add(10);
list.add(20);
list.add(30);
输出结果：
[10, 20, 30, abc]
 */
public class ReflectListDemo {
    public static void main(String[] args) throws InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {
        List<Integer>list = new ArrayList<>();
        list.add(10);
        list.add(20);
        list.add(30);
        Class<List> clazz = List.class;
        Method addMethod = clazz.getMethod("add", Object.class);
        addMethod .invoke(list, "abc");
        System.out.println("添加后集合：" + list);
    }



}

